package co.gov.aerocivil.siga.registrarquejaservicioaerolinea.servicio.impl;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import co.gov.aerocivil.siga.accesobd.servicio.ICrudServicio;
import co.gov.aerocivil.siga.comun.modelo.ServicioAbstracto;
import co.gov.aerocivil.siga.comun.modelo.administrador.Aerolinea;
import co.gov.aerocivil.siga.registrarquejaservicioaerolinea.servicio.IAerolineaServicio;

/**
 * Implementación de la interfaz, para la manipulación de Aerolineas
 * 
 * @author lfcortes
 * 
 */

@Stateless
public class AerolineaServicio extends ServicioAbstracto<Long, Aerolinea>
		implements IAerolineaServicio {

	/**
	 * Inyección de los servicios para operaciones con la base de datos
	 */
	@EJB
	protected ICrudServicio crudServicio;

	/** Constante que representa la instancia del Log. */
	private static final Logger LOG = LoggerFactory.getLogger(AerolineaServicio.class);

	/**
	 * Constructor del servicio de aerolineas
	 */
	public AerolineaServicio() {
		super(Aerolinea.class);
	}

	/*
	 * (non-Javadoc)
	 * @see co.gov.aerocivil.siga.registrarquejaservicioaerolinea.servicio.IAerolineaServicio#obtenerTodasAerolineas()
	 */
	@Override
	public List<Aerolinea> obtenerTodasAerolineas() {
		List<Aerolinea> aerolineas = new ArrayList<Aerolinea>();
		try{
			LOG.info("Iniciando obtenerTodasAerolineas");
			String query = "SELECT * FROM ADM_AEROLINEA a ORDER by a.descripcion";
			aerolineas = buscadorServicio.buscarPorConsultaNativa(query);	
		}finally{
			LOG.info("Finalizando obtenerTodasAerolineas: " + (aerolineas != null ? aerolineas.size():"0"));
		}
		
		return aerolineas;
	}

}
